Thermal inkjet hardcopy devices such as printers, graphics plotters, facsimile machines and copiers have gained wide acceptance. These hardcopy devices are described by W. J. Lloyd and H. T. Taub in "Ink Jet Devices," Chapter 13 of Output Hardcopy Devices (Ed. R. C. Durbeck and S. Sherr, San Diego: Academic Press, 1988). The basics of this technology are further disclosed in various articles in several editions of the Hewlett-Packard Journal [Vol. 36, No. 5 (May 1985), Vol. 39, No. 4 (August 1988), Vol. 39, No. 5 (October 1988), Vol. 43, No. 4 (August 1992), Vol. 43, No. 6 (December 1992) and Vol. 45, No. 1 (February 1994)], incorporated herein by reference. Inkjet hardcopy devices produce high quality print, are compact and portable, and print quickly and quietly because only ink strikes the paper.
An inkjet hardcopy device forms a printed image by printing a pattern of individual dots at particular locations of an array defined for the printing medium. The locations are sometimes referred to as dot locations, dot positions, or pixels. The locations are conveniently visualized as being small dots in a rectilinear array. Inkjet hardcopy devices print dots by ejecting very small drops of ink onto the print medium and typically include a movable carriage that supports one or more print cartridges each having ink ejecting nozzles. The carriage traverses over the surface of the print medium, and the nozzles are controlled to eject drops of ink at appropriate times pursuant to command of a microcomputer or other controller, wherein the timing of the application of the ink drops is intended to correspond to the pattern of pixels of the image being printed. The ink cartridge containing the nozzles is moved repeatedly across the width of the medium to be printed upon. After each such completed movement or swath the medium is moved forward and the ink cartridge begins the next swath. By proper selection and timing of the signals, the desired print is obtained on the medium. Thus, the printing operation can be viewed as the filling of a pattern of dot locations with drops of ink.
Color itself can be discussed according to three different characteristics. These do not take into account all the variables of color but do handle the subject sufficiently to explain color printing. The "hue" of color is the actual color appearance, i.e. red, green, purple, orange, blue-green, etc. The hue is the characteristic which gives color a basic name. The second characteristic comes from the fact that some colors cannot be classified as hues, i.e. black, gray, and white. These are called achromatic colors. The presence of gray in a color is an inverse measurement of the "chroma" and can be described as the color's intensity or saturation. The more gray, the less intense and vice versa. The third characteristic is defined as "value" in the Munsell color system and describes the color's lightness or darkness. Thus, you can have a light blue or a dark green, and both can be intense (lacking gray) in reference to their chroma.
RGB is a color space that uses as its primary colors red, green, and blue. These three colors are the primary "additive" colors. In devices that use projected light to produce an image (for example, televisions or computer monitors), the complete spectrum of colors can be reproduced using red, green, and blue. All three primary additive colors combine to form white. Any other color can be produced by combining different amounts of the three primary colors.
CMY is a color space that uses as its primary colors cyan, magenta and yellow. These four colors are the primary "subtractive" colors, because when printed on paper, the CMY colors subtract some colors while reflecting others. In devices that use reflected light to produce an image, the complete spectrum of colors can be reproduced using cyan, magenta and yellow. In theory, all three primary subtractive colors combine to form black. However, it is sometimes difficult to get a satisfying black using a given set of cyan, magenta and yellow inks, so many reflective color-based products add a "true" black color, k, hence the color set CMYK. The CMYK color set is sometimes called "process color. "
Digital image data must be transformed or pre-processed so that different devices will all render an image represented by the image data in a similar way. A pre-processor associated with or configured for each such output device transforms the digital data to a form tailored to the characteristics of that particular device.
In order to reproduce a received color value, a color inkjet printer must convert or map the color value into a color command that is recognized by the inkjet printer. A color management system assures that the colors produced by one product (a printer, scanner, monitor, film recorder, etc.) match those produced on other products. Color management systems typically have two components, "profiles" of individual color products that specify the color capabilities of the device and software that runs on a host computer that uses this information to insure that the colors produced by one product match those produced by another.
The color management system adjusts or maps the color values in accordance with a predetermined calibration function so as to assure that the printed colors will appear the same as the colors displayed on the display device. At the same time, the red, green and blue values are converted to Cyan, yellow, and magenta values. An additional value is supplied for a black (K) dot to be applied at a pixel location. In cases where a particular color is not within the color gamut of a target device (i.e. the target device simply is incapable of reproducing the color), the color management software must provide the closest possible match.
Device independent color is a term describing a computer system capable of reproducing a color accurately on any attached color device (printer, monitor, scanner, etc.). Device-independent color space is a system for mathematically defining color. Many different color spaces exist, including RGB (red, green, blue), CMYK (cyan, magenta, yellow, black), and numerous device-independent color spaces such as Munsell, CIEXYZ, CIELAB and CIELUV.
In an inkjet printer, a color spot printed in a pixel position on a medium may consist of a number of overlapping dots of the same color ink or different color inks. As one example, a four color ink printer printing any combination of cyan, magenta, yellow, and black dots for a pixel position with, at most, one dot per color for a single pixel position can produce 16 different colors for a single pixel position without halftoning. If multiple drops (e.g., four) of the same color ink can be used when creating a color spot, the possible color combinations without halftoning can be over 10,000.
The possible color spots which can be printed by a particular printer is sometimes referred to as a palette of colors. Typically, the number of RGB colors that can be generated by a computer and displayed on the computer's display screen is much more than the palette of colors available for a particular printer. Thus, there will typically be some error between the color spot printed for a pixel and the ideal RGB color generated by the computer for that pixel position.
Most color inkjet hardcopy devices are binary in nature because they either apply a full color dot or no color dot to a pixel location. Such color printers do not employ a control mechanism to enable adjustment of the intensity of a particularly applied color dot. As a result, a printer driver for a binary color printer employs a color halftoning process. Digital halftoning refers to any process that creates the illusion of continuous tone images by judicious arrangement of picture elements, such as ink drops in the case of inkjet printers. The dots are placed in such a way that they appear to the human eye to be a single color. Dithering can be used to reproduce gray shades using only black ink, or a fuller spectrum of color using only the process colors cyan, magenta, yellow, black. For example, to produce green, a color printer lays down patterns of small yellow and cyan dots that appear to the eye to be green.
In general, there are two families of halftoning techniques, dithering and error diffusion. Dithering involves a dither cell which is a two dimensional matrix of threshold values. Pixel values are compared to corresponding threshold entries in the dither cell to determine if they should be snapped up or down. In this way a shade of red for example can only be converted to full red or no red. Dithering in general benefits from ease of implementation. It can be done very quickly in a printer and it fits in very nicely in different print architectures.
Error diffusion is a technique for laying down dots of the primary colors to produce the full spectrum of color. Error diffusion techniques use complex algorithms to lay down dots of color in a random rather than a repeated pattern, which improves the quality of the image. In error diffusion, the error between the actual color printed by the printer and the true tone value to be reproduced for that pixel position is dispersed to nearby pixel positions. The colors then printed in those nearby pixel positions will compensate for the tone errors in other nearby color spots so that the overall tone in an area on the medium closely matches the true tone generated by the computer. Thus, error diffusion makes the best approximation it can for a given pixel, calculates how far that approximation is from the ideal and propagates this "error" to neighboring pixels. In this way a given pixel may not be particularly accurate but a surrounding area will be. In general, error diffusion benefits from much better print quality than dithering. Typically, intense calculation is required to create the random pattern, so printing images using error diffusion is slower than using pattern dithering.
There is also usually a restriction on the amount of computational complexity that can be accepted. A "point operation" in image processing refers to any algorithm which produces output for a given location based only on the single input pixel at that location, independent of its neighbors. Thus, in point operation, halftoning is accomplished by a simple pointwise comparison of the input image against a predetermined threshold array or mask. For every point or pixel in the input image, depending on which point value is larger, the gray scale image or the mask, either a 1 or 0, respectively, is placed at the corresponding location in the binary output image. While various masks may be used, the general procedure for point halftoning is known. For applications where minimizing computation time and/or hardware is a premium, a point operation is preferred. Error diffusion, also called a neighborhood operation, is more computationally intensive, but generally produces higher quality results.
Color accuracy becomes more critical for color inkjet printers, as their print quality improves to near photographic. Most inkjet printers do not have the capability of self color calibration. Most printer drivers only allow users the ability to control curve shapes of RGB channels with sliders, based on the users' own impression of the prints. A printer user can interactively calibrate by printing numbers of gray images with various hue casts and contrast. The printer will automatically adjust color curves based on the best print picked by the user. In either of the above situations, print results depend heavily on users' preference and experience. For users lacking of experience in imaging or photography, color calibration is a painful job. In order to reproduce accurate color prints, it is necessary to have a color calibration process independent of user's preference. Moreover, due to print cartridge to print cartridge variance, the printed color of each individual printer maybe different.
Accordingly, there is a need for a method of color calibration which is independent of the preferences of a user and there is also a need for increasing the speed of color processing by eliminating the need to perform colormap building or color mapping processing.